#pragma once
// Contains all global declared constants of SD_Tools

namespace SD_Tools
{
	const double SD_PI = 3.14159265358979323846;
	const float SD_PI_F = (float) SD_PI;

	const DWORD ShapeFVF = D3DFVF_XYZRHW | D3DFVF_DIFFUSE;
	const DWORD TexFVF = D3DFVF_XYZRHW | D3DFVF_TEX1;

	struct SHAPEVERTEX
	{
		float x;
		float y;
		float z;
		float rhw;
		DWORD color;
		SHAPEVERTEX() {};
		SHAPEVERTEX(float x, float y, float z, float rhw, DWORD color): x(x), y(y), z(z), rhw(rhw), color(color) {};
	};

	struct TEXVERTEX
	{
		float x;
		float y;
		float z;
		float rhw;
		float tu;
		float tv;
	};

	enum ShapeSizes
	{
		SIZE_NULL = 0,
		SIZE_POINT = 1,
		SIZE_LINE = 2,
		SIZE_TRIANGLE = 3,
		SIZE_QUAD = 6,
		SIZE_RECT = 6
	};

	enum FontWeights
	{	
		SDFW_DONTCARE = 0U,
		SDFW_THIN = 100U,
		SDFW_EXTRALIGHT = 200U,
		SDFW_LIGHT = 300U,
		SDFW_NORMAL = 400U,
		SDFW_MEDIUM = 500U,
		SDFW_SEMIBOLD = 600U,
		SDFW_BOLD = 700U,
		SDFW_EXTRABOLD = 800U,
		SDFW_HEAVY = 900U
	};

	enum DrawTextType
	{
		SDDT_NORMAL,
		SDDT_VCENTER,
		SDDT_HCENTER,
		SDDT_CENTER
	};

	class AsmHelper;
	class DInput8Wrapper;
	class DirectXHelper;
	class External;
	class General;
	class HotkeyWrapper;
	class Vector2;
	class Ray2;
	class Plane2;
	class Angle2;
	class Rectangle2;
	class Vector;
	class Angle;
	class Ray;
	class Plane;
	class AbstractDraw;
	class AbstractIni;
	class Internal;
	class SimpleMenu;
	class SimpleTray;
}

